Conventional data processing systems may provide commands for inquiring about the status of a user of the data processing system. The types of status information typically provided may include which users are logged on to a system, when a user logged on, which workstation the user is logged onto, which programs are being executed by a user, and how long such programs have been executing. However, when a first user desires to inquire about the activity of a second user, no capability is provided by conventional systems. If one desires to ask what is a user doing now, or what did a user do in the past hour, or what did a user do today, or what did a user do last week, then conventional systems cannot answer. This is a problem when the first user desires to initiate an action which either requires, depends upon, or would be furthered by knowledge of the activity of the second user.
The state of the prior art is demonstrated by the IBM (International Business Machines Corporation) VM* Operating System QUERY USERS, QUERY NAMES, and QUERY USERID commands, the DEC (Digital Equipment Corporation) VMS* Operating System SHOW USER and SHOW PROCESS command, and the USL (Unix System Laboratories) UNIX* System V Operating System USERS, WHO, WHODO, RWHO, FINGER, and PS commands. (IBM and VM are registered trademarks of International Business Machines Corporation; DEC and VMS are registered trademarks of Digital Equipment Corporation; USL and UNIX are trademarks of Unix System Laboratories in the United States of America and other countries).
The IBM VM* Operating System QUERY USERS command gives the number of users logged on to the system. The QUERY NAMES command lists the userids of all logged on users. The QUERY USERID command tells if a specific user is logged on to the system. Although these commands tell whether a user is logged on to a system, they do not provide any information on the activity of a user. This is due to the fact that a user may be logged onto a system, but still not be actively using the system. Even if the user is actively using the system, these commands do not provide any information on such activity. In addition, these commands do not provide any information about users relative to remote systems in a network. These commands also do not provide any information about the user relative to a terminal device if such terminal device is an intelligent terminal executing its own operating system and applications in addition to being logged on to the system. In addition, these commands only provide a query for a single user or for all users on a system. These commands do not provide a query for a group of users sharing a common characteristic.
The DEC VMS* Operating System SHOW USER command provides a list of the users currently logged on to the system and their terminal device numbers. The SHOW PROCESS command provides an overview of a VMS user's process including process identification number, process name, process priority, user identification, and default file specification. Again, these commands do not provide any information on the activity of a user; nor do they provide any information about users relative to remote systems in a network; nor do they provide a query for a group of users sharing a common characteristic.
The USL UNIX* System V Operating System USERS command provides a list of the users currently logged on to the system. The WHO command provides the names of the users currently logged on to the system, their terminal device numbers, the times they logged on, and the duration of time that their terminal devices have been inactive. The RWHO command and the FINGER command provide the same information as the WHO command on remote users on other systems in a network, and in addition identify the remote system on which a user is logged on. The PS command provides for each program process that a user is executing at the time of the inquiry, the name of the program process, the terminal device on which the program process is executing, its process ID number, and the amount of CPU (central processing unit) seconds consumed so far by the process. The WHODO command provides for each logged on user, or for a single named user, their terminal device numbers and how long they have been logged on. In addition, WHODO provides for each program process that a user is executing at the time of the inquiry, the same information provided by the PS command. Again, although these commands tell whether a user is logged on to a system, this does not provide any information on the activity of a user. Also, although these commands do provide information about users relative to remote systems in a network, this information is limited to remote systems which are also executing a UNIX operating system. In addition, these commands do not provide a query for a group of users sharing a common characteristic. Although the PS and WHODO commands identify programs that are executing at the instant of inquiry, they do not identify user activity at the instant of inquiry. A program may be executing independent of any user activity. A program may also be executing as a result of a long past user activity. Even though a program may require user activity for its execution, the fact that the program is executing does not identify the user activity or the duration of the user activity. Events in the execution of a program which do indicate user activity are not detected by these commands. Another problem is that the time intervals provided by these commands are measured in CPU seconds, not actual elapsed time. A further problem is that these commands only provide information available at the time of inquiry, they do not provide any historical information.
For a situation which may call for a user needing to know about the activity of another user, consider the following situations.
A user may wish to send an electronic mail distribution to recipients and determine if they are working on the item sent. It may be useful to determine if the recipient actually looked at a distribution whether it be a facsimile image, note, video, etc. The user may also wish to determine what the recipients did with the distribution.
A user may wish detailed status of what an individual, or group of individuals, did with a variety of media or tasks on the system.
A user may wish to receive notification or status of a user activity without a phone call or visit.
A user, such as a manager or a system administrator, may wish to determine which application programs, or portions of application programs, are being used by a user or a group of users. The user may desire detailed history of such usage. The user may also wish to determine device usage. The user may need this information to determine over-utilization or under-utilization of resources for procurement decisions. The user may need this information to determine compliance with license or use restrictions on such resources.
A manager or supervisor may wish to monitor individual or group activity without the individuals being aware of it, or without observing directly with individual senses.
A manager may want to know what activities are being performed by individuals, how much time is required for such activities, and the distribution of such activities. Such information would be useful for work load priority, scheduling, and balancing.
The prior art approaches described above fail to meet the needs of the above situations and present the user with three difficulties. The first difficulty is that the prior art approaches detect if a user is logged on to a system and those programs presently executing. They do not detect the activity of a user. The second difficulty is that the prior art approaches do not generally detect those events in a system which indicate user activity. Even if the prior art approaches coincidentally detect an event indicating user activity, they do not translate the occurrence of such an event into the corresponding user activity. The third difficulty is that the prior art approaches only provide information available at the instant of inquiry, they do not provide either historical information or the capability of a monitored time interval.
Thus the prior art provides no method of, or apparatus for, automatic detection of user activity. As such, there is a need for a method of, and apparatus for, providing automatic detection of activity of a user of a data processing system.